﻿using System;
using Tanmia.Basis.Core;

namespace Tanmia.Warehouse.Core
{
    /// <summary>
    /// لوت, جلبة من إحدى المواد ذات تاريخ صلاحية
    /// </summary>
    public class Lot : BaseBusinessObject, IMovableElement
    {
        private string number;
        private string code;
        private DateTime createDate;
        private DateTime expireDate;
        private string notes;
        private Item item;

        /// <summary>
        /// رقم رعطى للوت من قبل المستخدم عند إنشاؤه
        /// </summary>
        public virtual string Number
        {
            get { return number; }
            set { SetValue<string>("Number", ref number, value); }
        }

        /// <summary>
        /// رمز يعطى للوت عند إنشاؤه
        /// </summary>
        public virtual string Code
        {
            get { return code; }
            set { SetValue<string>("Code", ref code, value); }
        }

        /// <summary>
        /// تاريخ إنشاء اللوت
        /// </summary>
        public virtual DateTime CreateDate
        {
            get { return createDate; }
            set { SetValue<DateTime>("CreateDate", ref  createDate, value); }
        }

        /// <summary>
        /// تاريخ إنتهاء صلاحية اللوت
        /// </summary>
        public virtual DateTime ExpireDate
        {
            get { return expireDate; }
            set { SetValue<DateTime>("ExpireDate", ref expireDate, value); }
        }

        /// <summary>
        /// ملاحظات
        /// </summary>
        public virtual string Notes
        {
            get { return notes; }
            set { SetValue<string>("Notes", ref notes, value); }
        }

        /// <summary>
        /// المادة التي تتبع لها الجلبة الحالية
        /// </summary>
        public virtual Item Item
        {
            get { return item; }
            set { SetValue<Item>("Item", ref item, value); }
        }

        #region IMovableElement Members

        private int elementID;

        /// <summary>
        /// رقم تعريف اللوت
        /// </summary>
        public virtual int ElementID
        {
            get { return elementID; }
            set { SetValue<int>("ElementID", ref elementID, value); }
        }

        #endregion
    }
}
